package com.mail.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mail.common.DataResult;
import com.mail.dto.UserDto;
import com.mail.pojo.User;
import io.minio.errors.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Map;

public interface UserService extends IService<User> {
    /**
     * 修改用户相关信息
     * 可修改：username，password，nickname，img，status
     */
    DataResult updateUser(Map<String,Object> map);


    /**
     * 用户注册
     * 注册信息：username，password，nickname
     */
    DataResult UserRegister(UserDto userDto);

    /**
     * 分页查询用户
     * 分页查询信息：page，limit
     */
    DataResult queryUserPage(Map<String,Object> map);

    /**
     * 根据id查询用户
     * 查询：id
     */
    DataResult getUserById(long id);

    /**
     * 根据id删除用户
     * 删除：id
     */
    DataResult deleteUserById(long id);

    /**
     * 找回密码
     */
    DataResult queryPasswordByName(String username,String password);

    /**
     * 上传头像
     */
    DataResult uploadImg(MultipartFile file) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException;

}
